import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../components/Home.vue";
import Login from "../components/Login.vue";
import UserProfile from "../components/UserProfile.vue";
import Main from "../views/plan/Main.vue";


Vue.use(VueRouter);

const routes = [
  { path: "/", component: Main },
  { path: "/login", component: Login },
  { path: "/user/:id", component: UserProfile, meta: { requiresAuth: true } },
  // 其他路由...
];

const router = new VueRouter({
  routes,
});

// 全局前置守卫
router.beforeEach((to, from, next) => {
  // 假设有一个函数可以检查用户是否登录
  const isUserLoggedIn = checkUserLogin();

  // 检查要进入的路由是否需要认证
  if (to.matched.some((record) => record.meta.requiresAuth)) {
    // 路由需要认证
    if (!isUserLoggedIn) {
      // 用户未登录，重定向到登录页面
      next({
        path: "/login",
        query: { redirect: to.fullPath }, // 将原路由路径作为参数，以便登录后重定向
      });
    } else {
      // 用户已登录，正常进入路由
      next();
    }
  } else {
    // 路由不需要认证，正常进入路由
    next();
  }
});

function checkUserLogin() {
  // 这是一个模拟函数，实际项目中，你可能会从 localStorage、Vuex 或者后端 API 获取登录状态
  // 这里我们简单地返回一个布尔值表示用户是否登录
  // 例如：return localStorage.getItem('user') !== null;
  return /* 模拟用户登录状态 */;
}

export default router;
